// 给定一个链表的头节点head，以及一个整数k, 要求返回链表的倒数第k个节点

// 思路：和删除倒数第n个节点思路一致，不同的是这题不需要虚拟节点
// 时间复杂度：O(n)，n是链表的节点数
// 空间复杂度：O(1)

const { LinkedList, ListNode} = require('./64.设计链表')

function getKthFromEnd(head, k) {
    let slow = head
    let fast = head
    while (k) {
        if (!fast) {
            return null
        }
        fast = fast.next
        k--
    }
    while (fast) {
        fast = fast.next
        slow = slow.next
    }
    return slow
}

let node = new LinkedList([1,2,3,4,5,6])
console.log(getKthFromEnd(node.head, 4))